# Q. What is this file?
# A. This file contains options which allow you to configure your multiworld experience while allowing
#    others to play how they want as well.
#
# Q. How do I use it?
# A. The options in this file are weighted. This means the higher number you assign to a value, the
#    more chances you have for that option to be chosen. For example, an option like this:
#
#    map_shuffle:
#      on: 5
#      off: 15
#
#    Means you have 5 chances for map shuffle to occur, and 15 chances for map shuffle to be turned
#    off.
#
# Q. I've never seen a file like this before. What characters am I allowed to use?
# A. This is a .yaml file. You are allowed to use most characters.
#    To test if your yaml is valid or not, you can use this website:
#        http://www.yamllint.com/
#    You can also verify that your Archipelago options are valid at this site:
#        https://archipelago.gg/check

# Your name in-game, limited to 16 characters.
#     {player} will be replaced with the player's slot number.
#     {PLAYER} will be replaced with the player's slot number, if that slot number is greater than 1.
#     {number} will be replaced with the counter value of the name.
#     {NUMBER} will be replaced with the counter value of the name, if the counter value is greater than 1.
name: Player{number}

# Used to describe your yaml. Useful if you have multiple files.
description: Default Viscera Cleanup Detail Template

game: Viscera Cleanup Detail
requires:
  version: 0.6.7 # Version of Archipelago required for this yaml to work as expected.

Viscera Cleanup Detail:
  ################
  # Game Options #
  ################
  progression_balancing:
    # A system that can move progression earlier, to try and prevent the player from getting stuck and bored early.
    # 
    # A lower setting means more getting stuck. A higher setting means less getting stuck.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 99
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-99: 0 # random value between 0 and 99
    disabled: 0 # equivalent to 0
    normal: 50 # equivalent to 50
    extreme: 0 # equivalent to 99

  accessibility:
    # Set rules for reachability of your items/locations.
    # 
    # **Full:** ensure everything can be reached and acquired.
    # 
    # **Minimal:** ensure what is needed to reach your goal can be acquired.
    full: 50
    minimal: 0

  level_pool:
    # The levels the seed plays, keyed by display name. Every level is a valid
    # key; the default is all of them. A level left out generates no checks and
    # no access item. With randomize_level_pool on, this is the set the random
    # draw picks from. The find_bob goal forces the Digsite and the six note
    # levels into the pool. The Digsite's gate-locked checks (Open the Digsite
    # Gates, Find Bob, the Red Keycard, the Bolter) only exist when the pool
    # holds the Digsite and every note level.
    ['Splatter Station', 'Rust-Station East', 'Section 8', 'Zero-G Therapy', 'Evil Science', 'Waste Disposal', 'Caduceus', 'Cryogenesis', 'Unearthly Excavation', "Athena's Wrath", 'Hydroponic Hell', 'Paintenance Tunnels', 'Unrefinery', 'Gravity Drive', 'Revolutionary Robotics', 'Overgrowth', 'Frostbite', 'Incubation Emergency', 'Uprinsing', 'Core Sample', 'Penumbra', 'Pestilent Penitentiary', 'House of Horror', 'The Vulcan Affair', "Santa's Workshop", 'Zilla Pagoda']

  randomize_level_pool:
    # Play a random subset of level_pool instead of the whole set. Each seed
    # draws the subset size at random, from the smallest set the goal allows
    # (goal_amount_levels levels for complete_levels, enough
    # collectible-holding levels for collect_collectibles, the Bob chain for
    # find_bob) up to the whole pool. Off by default.
    'false': 50
    'true': 0

  milestone_step:
    # How finely each level's cleanliness is checked. 5 percent gives 20
    # checks per level; 1 percent gives 100 (a very large world, more still
    # with above_and_beyond). The 100 percent rung (Employee of the Month)
    # exists at every step, and steps finer than 5 keep the 5 percent step's
    # ladder ceiling and logic margins, so no check gets closer to a level's
    # known maximum than at the 5 percent step.
    '1': 0
    '2': 0
    '5': 50
    '10': 0

  above_and_beyond:
    # Extend each level's milestone ladder past 100 percent (levels overfill
    # via restorables and bonus points). The ladder tops out a full step under
    # the level's known maximum cleanliness, so the last rung stays attainable.
    # Those top rungs lean on the punch-out report, which the
    # auto_fill_punchout_report option can fill for you. Off by default.
    'false': 50
    'true': 0

  speedrunsanity:
    # Add a Speedrun check to every level: punch out at least 95 percent clean
    # within the level's par time. Off by default, so seeds carry no speed
    # pressure unless asked for.
    'false': 50
    'true': 0

  toolsanity:
    # Lock each level's tools and machines behind per-level items: hands
    # (carrying), the laser welder, the shovel, the J-HARM lift, the vendor, and
    # the incinerator become progression, while the sniffer, broom, and bin
    # dispenser become useful unlocks. Every level starts with just the mop and
    # the Slosh-O-Matic, and higher cleanliness milestones need the tools that
    # can physically reach them. On by default.
    'false': 0
    'true': 50

  random_starting_kit:
    # With toolsanity on, each level independently rolls its free starting
    # pair: mop plus Slosh-O-Matic, or hands plus incinerator (the displaced
    # pair becomes that level's items). A hands start is the hard way: debris
    # can burn, but blood waits for the mop. On a hands-start level the
    # Self-Cleaning Mop counts as the Slosh-O-Matic in logic, since a mop that
    # never dirties needs no rinse bucket. Off by default (every level starts
    # mop and Slosh-O-Matic).
    'false': 50
    'true': 0

  hard_start_squeaky_boots:
    # With random_starting_kit on, a level that rolls the hands and
    # incinerator start also starts with its Squeaky Clean Boots, so the
    # janitor tracks no bloody footprints while the mop is still locked. That
    # level's boots item is granted up front instead of entering the pool.
    # On by default. Does nothing without random_starting_kit.
    'false': 0
    'true': 50

  auto_fill_punchout_report:
    # Fill the punch-out report for the janitor. The form's paperwork counts
    # toward cleanliness, and some of its answers (the causes of death on each
    # PID, the casing and bullet-hole counts) cannot be known from playing, so
    # this fills the whole form in: the report fills itself when you first use
    # the punch clock, and each PID chip fills its own death report when you feed
    # it into the machine. You still have to find the chips. While this is on the
    # mod keeps the form filled, so your own writing in it does not stick. Off by
    # default.
    'false': 50
    'true': 0

  trap_percentage:
    # The share of filler items that become traps: a mess dump near the
    # janitor, a spilled bucket, thirty seconds of walking at half or double
    # speed, a magnet pull that yanks everything loose nearby toward the
    # janitor, or thirty seconds of near-zero gravity. Traps arrive from the
    # multiworld while cleaning; they are never required by logic. 0 disables
    # traps.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    5: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  useful_percentage:
    # The share of filler items that become useful supplies: a bucket of
    # clean water or an empty bin dropped next to the janitor. Supplies arrive
    # from the multiworld while cleaning; they are never required by logic. When
    # trap_percentage and useful_percentage together pass 100, traps take their
    # share first. 0 disables supplies.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    15: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  death_link:
    # When you die, everyone who enabled death link dies. Of course, the
    # reverse is true too. Either way the whole shift goes down together: every
    # janitor in the session dies with the first, and the remains are yours to
    # clean up. A death that arrives while no level is loaded is dropped, never
    # held. Off by default.
    'false': 50
    'true': 0

  trap_link:
    # Link trap activations with every other player who enabled trap link:
    # when a trap fires in your game it also fires in theirs, and their linked
    # traps arrive here as the closest of this game's traps (one with no close
    # equivalent is ignored). Linked traps arrive even with trap_percentage 0.
    # Off by default.
    'false': 50
    'true': 0

  goal:
    # The win condition.
    # 
    # complete_levels: punch out of `goal_amount_levels` levels.
    # find_bob: follow the notes and find Bob in the Digsite (needs the six
    # note levels plus the Digsite).
    # collect_collectibles: bank `goal_amount_collectibles` collectibles in
    # the trunk.
    complete_levels: 50
    find_bob: 0
    collect_collectibles: 0

  goal_amount_levels:
    # How many levels the complete_levels goal needs. It must fit the level
    # pool: asking for more levels than the pool holds fails generation. `all`
    # is every level. The other goals ignore it.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 26
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-26: 0 # random value between 1 and 26
    few: 0 # equivalent to 5
    half: 0 # equivalent to 13
    most: 0 # equivalent to 20
    all: 50 # equivalent to 26

  goal_amount_collectibles:
    # How many collectibles the collect_collectibles goal needs. It must fit
    # the level pool: asking for more collectibles than the pooled levels hold
    # fails generation. `all` is every collectible. The other goals ignore
    # it.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 39
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-39: 0 # random value between 1 and 39
    few: 0 # equivalent to 5
    half: 0 # equivalent to 20
    most: 0 # equivalent to 30
    all: 50 # equivalent to 39

  starting_levels:
    # How many levels are unlocked at the start of the seed.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 10
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-10: 0 # random value between 1 and 10
    one: 50 # equivalent to 1
    few: 0 # equivalent to 3

  ###########################
  # Item & Location Options #
  ###########################
  local_items:
    # Forces these items to be in their native world.
    []

  non_local_items:
    # Forces these items to be outside their native world.
    []

  start_inventory:
    # Start with the specified amount of these items. Example: "Bomb: 1"
    {}

  start_inventory_from_pool:
    # Start with the specified amount of these items and don't place them in the world. Example: "Bomb: 1"
    # 
    # The game decides what the replacement items will be.
    {}

  start_hints:
    # Start with these item's locations prefilled into the ``!hint`` command.
    []

  start_location_hints:
    # Start with these locations and their item prefilled into the ``!hint`` command.
    []

  exclude_locations:
    # Prevent these locations from having an important item.
    []

  priority_locations:
    # Prevent these locations from having an unimportant item.
    []

  item_links:
    # Share part of your item pool with other players.
    []

  plando_items:
    # Generic items plando.
    []
